import Vue from 'vue'
import Vuex from 'vuex'
// import _ from 'lodash'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    // 当前城市的数据以及历史城市的数据
    city:{
      "id": 20,
      "nm": "广州",
      "py": "guangzhou",
      "rank": "A",
      "acronym": "gz",
      "chineseFullnm": "广州市",
      "position": {
          "lat": 23.093438,
          "lng": 113.297107
      }
    },
    historyCity:[],

    // 今天的日期 yyyy-mm-dd格式
    time:null,

    // CinemaScreen组件存入vuex的id
    // 影院服务
    hallTypesId:-1,
    // 影院类型
    servicesId:-1,

    // CinemaDetail路由组件的当前影院放映电影的数据
    movieShowData:[],
  },
  mutations: {
    // 处理传入的城市数据
    city(state,data){
      if(data=="定位失败，请稍后重试"){
        return
      }
      state.city=data
     
      state.historyCity.unshift(data)
    // 对historyCity数据进行数组对象去重
    // 1.使用reduce（）方法
      // let obj = {};
      // state.historyCity = state.historyCity.reduce(function(Array, nextItem) {
      //   obj[nextItem.id] ? '' : obj[nextItem.id] = true && Array.push(nextItem);
      //   return Array;
      // }, []);
    // 2.使用es6 filter（）方法
      state.historyCity=state.historyCity.filter((item,index,array)=> {
          return array.findIndex((items)=>items.id === item.id) === index
      });
    },
    // 处理传入的日期
    time(state,data){
      this.state.time=data
    },
    // 处理CinemaDetail路由组件传入的数据
    movieShowData(state,data){
      state.movieShowData=data
    },

    // 处理CinemaScreen组件存入vuex的id
    // 影院服务
    service(state,sId){
      state.servicesId=sId
    },
    // 影院类型
    hallType(state,hId){
      state.hallTypesId=hId
    },

    
  },
  actions: {
  },
  modules: {
  }
})
